home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 January / enter-2004-01.iso / files / maxima-5.9.0.exe / {app} / info / maxima.info-1 next >
Encoding:
GNU Info File  |  2003-02-09  |  45.7 KB  |  1,239 lines

  1. This is maxima.info, produced by makeinfo version 4.1 from maxima.texi.
  2.  
  3.    This is a Texinfo Maxima Manual
  4.  
  5.    Copyright 1994,2001 William F. Schelter
  6.  
  7. START-INFO-DIR-ENTRY
  8. * Maxima: (maxima).     A computer algebra system.
  9. END-INFO-DIR-ENTRY
  10.  
  11. 
  12. File: maxima.info,  Node: Top,  Next: Introduction to MAXIMA,  Prev: (dir),  Up: (dir)
  13.  
  14.  
  15.  
  16.    MAXIMA is a fairly complete computer algebra system.
  17.  
  18.    This system MAXIMA is a COMMON LISP implementation due to William F.
  19. Schelter, and is based on the original implementation of Macsyma at
  20. MIT, as distributed by the Department of Energy.  I now have permission
  21. from DOE to make derivative copies, and in particular to distribute it
  22. under the GNU public license.  See the file COPYING included in the
  23. distribution.   Thus these files may now be redistributed under the
  24. terms of GNU public license.
  25.  
  26. * Menu:
  27.  
  28. MAXIMA infrastructure
  29.  
  30. * Introduction to MAXIMA::      Sample MAXIMA sessions.
  31. * Help::                        Asking for help from within a MAXIMA session.
  32. * Command Line::                MAXIMA command line syntax.
  33. * Operators::                   Operators used in MAXIMA expressions.
  34. * Expressions::                 Expressions in MAXIMA.
  35. * Simplification::              Simplifying expressions.
  36. * Plotting::                    2D and 3D graphical output.
  37. * Input and Output::            File input and output.
  38. * Floating Point::              Low level numerical routines.
  39. * Contexts::                    Sets of assumed facts.
  40.  
  41. Support for specific areas of mathematics
  42.  
  43. * Polynomials::                 Standard forms for polynomials, and
  44.                                 functions operating on them.
  45. * Constants::                   Numerical constants.
  46. * Logarithms::                  Manipulation of expressions involving
  47.                                 logarithms.
  48. * Trigonometric::               Manipulating expressions with trig and
  49.                                 inverse trig functions.
  50. * Special Functions::           Special functions
  51. * Orthogonal Polynomials::      Orthogonal Polynomials and Special functions
  52. * Elliptic Functions::          Elliptic Functions and Integrals
  53. * Limits::                      Limits of expressions.
  54. * Differentiation::             Differential calculus.
  55. * Integration::                 Integral calculus.
  56. * Equations::                   Defining and solving equations.
  57. * Differential Equations::      Defining and solving differential equations.
  58. * Numerical::                   Numerical integration, Fourier
  59.                                 transforms, etc.
  60. * Statistics::                  Statistical functions.
  61. * Arrays and Tables::           Creating and working with arrays.
  62. * Matrices and Linear Algebra:: Matrix operations.
  63. * Affine::
  64. * Tensor::                      Indicial Tensor Manipulation package.
  65. * Ctensor::                     Component Tensor Manipulation.
  66. * Series::                      Taylor and power series.
  67. * Number Theory::               Number theory.
  68. * Symmetries::
  69. * Groups::                      Abstract algebra.
  70.  
  71. Advanced facilities and programming
  72.  
  73. * Runtime Environment::         Customization of the MAXIMA environment.
  74. * Miscellaneous Options::       Options with a global effect on MAXIMA.
  75. * Rules and Patterns::          User defined pattern matching and
  76.                                 simplification rules.
  77. * Lists::                       Manipulation of Lisp lists.
  78. * Function Definition::         Defining functions.
  79. * Program Flow::                Defining MAXIMA programs.
  80. * Debugging::                   Debugging MAXIMA programs.
  81.  
  82. Index
  83.  
  84. * Function and Variable Index:: Index.
  85.  
  86.  --- The Detailed Node Listing ---
  87.  
  88. Introduction
  89.  
  90. * Introduction to MAXIMA::
  91.  
  92. Help
  93.  
  94. * Introduction to Help::
  95. * Lisp and Maxima::
  96. * Garbage Collection::
  97. * Documentation::
  98. * Definitions for Help::
  99.  
  100. Command Line
  101.  
  102. * Introduction to Command Line::
  103. * Definitions for Command Line::
  104.  
  105. Operators
  106.  
  107. * NARY::
  108. * NOFIX::
  109. * OPERATOR::
  110. * POSTFIX::
  111. * PREFIX::
  112. * Definitions for Operators::
  113.  
  114. Expressions
  115.  
  116. * Introduction to Expressions::
  117. * ASSIGNMENT::
  118. * COMPLEX::
  119. * INEQUALITY::
  120. * SYNTAX::
  121. * Definitions for Expressions::
  122.  
  123. Simplification
  124.  
  125. * Definitions for Simplification::
  126.  
  127. Plotting
  128.  
  129. * Definitions for Plotting::
  130.  
  131. Input and Output
  132.  
  133. * Introduction to Input and Output::
  134. * FILES::
  135. * PLAYBACK::
  136. * Definitions for Input and Output::
  137.  
  138. Floating Point
  139.  
  140. * Definitions for Floating Point::
  141.  
  142. Contexts
  143.  
  144. * Definitions for Contexts::
  145.  
  146. Polynomials
  147.  
  148. * Introduction to Polynomials::
  149. * Definitions for Polynomials::
  150.  
  151. Constants
  152.  
  153. * Definitions for Constants::
  154.  
  155. Logarithms
  156.  
  157. * Definitions for Logarithms::
  158.  
  159. Trigonometric
  160.  
  161. * Introduction to Trigonometric::
  162. * Definitions for Trigonometric::
  163.  
  164. Special Functions
  165.  
  166. * Introduction to Special Functions::
  167. * GAMALG::
  168. * SPECINT::
  169. * Definitions for Special Functions::
  170.  
  171. Orthogonal Polynomials
  172.  
  173. * Introduction to Orthogonal Polynomials::
  174. * Definitions for Orthogonal Polynomials::
  175.  
  176. Elliptic Functions
  177.  
  178. * Introduction to Elliptic Functions and Integrals::
  179. * Definitions for Elliptic Functions::
  180. * Definitions for Elliptic Integrals::
  181.  
  182. Limits
  183.  
  184. * Definitions for Limits::
  185.  
  186. Differentiation
  187.  
  188. * Definitions for Differentiation::
  189.  
  190. Integration
  191.  
  192. * Introduction to Integration::
  193. * Definitions for Integration::
  194.  
  195. Equations
  196.  
  197. * Definitions for Equations::
  198.  
  199. Differential Equations
  200.  
  201. * Definitions for Differential Equations::
  202.  
  203. Numerical
  204.  
  205. * Introduction to Numerical::
  206. * DCADRE::
  207. * ELLIPT::
  208. * FOURIER::
  209. * NDIFFQ::
  210. * Definitions for Numerical::
  211.  
  212. Statistics
  213.  
  214. * Definitions for Statistics::
  215.  
  216. Arrays and Tables
  217.  
  218. * Definitions for Arrays and Tables::
  219.  
  220. Matrices and Linear Algebra
  221.  
  222. * Introduction to Matrices and Linear Algebra::
  223. * DOT::
  224. * VECTORS::
  225. * Definitions for Matrices and Linear Algebra::
  226.  
  227. Affine
  228.  
  229. * Definitions for Affine::
  230.  
  231. Tensor
  232.  
  233. * Introduction to Tensor::
  234. * Definitions for Tensor::
  235.  
  236. Ctensor
  237.  
  238. * Introduction to Ctensor::
  239. * Definitions for Ctensor::
  240.  
  241. Series
  242.  
  243. * Introduction to Series::
  244. * Definitions for Series::
  245.  
  246. Number Theory
  247.  
  248. * Definitions for Number Theory::
  249.  
  250. Symmetries
  251.  
  252. * Definitions for Symmetries::
  253.  
  254. Groups
  255.  
  256. * Definitions for Groups::
  257.  
  258. Runtime Environment
  259.  
  260. * Introduction for Runtime Environment::
  261. * INTERRUPTS::
  262. * Definitions for Runtime Environment::
  263.  
  264. Miscellaneous Options
  265.  
  266. * Introduction to Miscellaneous Options::
  267. * SHARE::
  268. * Definitions for Miscellaneous Options::
  269.  
  270. Rules and Patterns
  271.  
  272. * Introduction to Rules and Patterns::
  273. * Definitions for Rules and Patterns::
  274.  
  275. Lists
  276.  
  277. * Introduction to Lists::
  278. * Definitions for Lists::
  279.  
  280. Function Definition
  281.  
  282. * Introduction to Function Definition::
  283. * FUNCTION::
  284. * MACROS::
  285. * OPTIMIZATION::
  286. * Definitions for Function Definition::
  287.  
  288. Program Flow
  289.  
  290. * Introduction to Program Flow::
  291. * Definitions for Program Flow::
  292.  
  293. Debugging
  294.  
  295. * Definitions for Debugging::
  296.  
  297. 
  298. File: maxima.info,  Node: Introduction to MAXIMA,  Next: Help,  Prev: Top,  Up: Top
  299.  
  300. Introduction to MAXIMA
  301. **********************
  302.  
  303.    Start MAXIMA with the command "maxima".  MAXIMA will display version
  304. information and a prompt.  End each MAXIMA command with a semicolon.
  305. End the session with the command "quit();".  Here's a sample session:
  306.  
  307.      sonia$ maxima
  308.      GCL (GNU Common Lisp)  Version(2.3) Tue Mar 21 14:15:15 CST 2000
  309.      Licensed under GNU Library General Public License
  310.      Contains Enhancements by W. Schelter
  311.      Maxima 5.4 Tue Mar 21 14:14:45 CST 2000 (enhancements by W. Schelter)
  312.      Licensed under the GNU Public License (see file COPYING)
  313.      (C1) factor(10!);
  314.      
  315.                                         8  4  2
  316.      (D1)                              2  3  5  7
  317.      (C2) expand((x+y)^6);
  318.      
  319.                 6        5       2  4       3  3       4  2      5      6
  320.      (D2)      y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
  321.      (C3) factor(x^6-1);
  322.      
  323.                                           2            2
  324.      (D3)               (x - 1) (x + 1) (x  - x + 1) (x  + x + 1)
  325.      (C4) quit();
  326.      
  327.      sonia$
  328.  
  329.    MAXIMA can search the info pages.  Use the `describe' command to show
  330. all the commands and variables containing a string, and optionally their
  331. documentation:
  332.  
  333.      (C1) describe(factor);
  334.      
  335.      
  336.       0: DONTFACTOR :(maxima.info)Definitions for Matrices and ..
  337.       1: EXPANDWRT_FACTORED :Definitions for Simplification.
  338.       2: FACTOR :Definitions for Polynomials.
  339.       3: FACTORFLAG :Definitions for Polynomials.
  340.       4: FACTORIAL :Definitions for Number Theory.
  341.       5: FACTOROUT :Definitions for Polynomials.
  342.       6: FACTORSUM :Definitions for Polynomials.
  343.       7: GCFACTOR :Definitions for Polynomials.
  344.       8: GFACTOR :Definitions for Polynomials.
  345.       9: GFACTORSUM :Definitions for Polynomials.
  346.       10: MINFACTORIAL :Definitions for Number Theory.
  347.       11: NUMFACTOR :Definitions for Special Functions.
  348.       12: SAVEFACTORS :Definitions for Polynomials.
  349.       13: SCALEFACTORS :Definitions for Miscellaneous Options.
  350.       14: SOLVEFACTORS :Definitions for Equations.
  351.      Enter n, all, none, or multiple choices eg 1 3 : 2 8;
  352.      
  353.      Info from file /d/linux/local/lib/maxima-5.4/info/maxima.info:
  354.       - Function: FACTOR (EXP)
  355.           factors the expression exp, containing any number of variables or
  356.           functions, into factors irreducible over the integers.
  357.           FACTOR(exp, p) factors exp over the field of integers with an
  358.           element adjoined whose minimum polynomial is p.  FACTORFLAG[FALSE]
  359.           if FALSE suppresses the factoring of integer factors of rational
  360.           expressions.  DONTFACTOR may be set to a list of variables with
  361.           respect to which factoring is not to occur.  (It is initially
  362.           empty).  Factoring also will not take place with respect to any
  363.           variables which are less important (using the variable ordering
  364.           assumed for CRE form) than those on the DONTFACTOR list.
  365.           SAVEFACTORS[FALSE] if TRUE causes the factors of an expression
  366.           which is a product of factors to be saved by certain functions in
  367.           order to speed up later factorizations of expressions containing
  368.           some of the same factors.  BERLEFACT[TRUE] if FALSE then the
  369.           Kronecker factoring algorithm will be used otherwise the Berlekamp
  370.           algorithm, which is the default, will be used.  INTFACLIM[1000] is
  371.           the largest divisor which will be tried when factoring a bignum
  372.           integer.  If set to FALSE (this is the case when the user calls
  373.           FACTOR explicitly), or if the integer is a fixnum (i.e.  fits in
  374.           one machine word), complete factorization of the integer will be
  375.           attempted.  The user's setting of INTFACLIM is used for internal
  376.           calls to FACTOR. Thus, INTFACLIM may be reset to prevent MACSYMA
  377.           from taking an inordinately long time factoring large integers.
  378.           NEWFAC[FALSE] may be set to true to use the new factoring routines.
  379.           Do EXAMPLE(FACTOR); for examples.
  380.      
  381.      
  382.       - Function: GFACTOR (EXP)
  383.           factors the polynomial exp over the Gaussian integers (i.  e.
  384.           with SQRT(-1) = %I adjoined).  This is like FACTOR(exp,A**2+1)
  385.           where A is %I.
  386.                (C1)  GFACTOR(X**4-1);
  387.                (D1)        (X - 1) (X + 1) (X + %I) (X - %I)
  388.      (D1)                      FALSE
  389.  
  390.    To use a result in later calculations, you can assign it to a
  391. variable or refer to it by its automatically supplied label.  In
  392. addition, `%' refers to the most recent calculated result:
  393.  
  394.      (C2) u:expand((x+y)^6);
  395.      
  396.                 6        5       2  4       3  3       4  2      5      6
  397.      (D2)     y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
  398.      (C3) diff(u,x);
  399.      
  400.                      5         4       2  3       3  2       4        5
  401.      (D3)        6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
  402.      (C4) factor(d3);
  403.      
  404.                                                 5
  405.      (D4)                             6 (y + x)
  406.  
  407.    MAXIMA knows about complex numbers and numerical constants:
  408.  
  409.      (C6) cos(%pi);
  410.      
  411.      (D6)                                  - 1
  412.      
  413.      (C7) %e^(%i*%pi);
  414.      
  415.      (D7)                                  - 1
  416.  
  417.    MAXIMA can do differential and integral calculus:
  418.  
  419.      (C8) u:expand((x+y)^6);
  420.      
  421.                 6        5       2  4       3  3       4  2      5      6
  422.      (D8)     y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
  423.      (C9) diff(%,x);
  424.      
  425.                      5         4       2  3       3  2       4        5
  426.      (D9)        6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
  427.      (C10) integrate(1/(1+x^3),x);
  428.      
  429.                                               2 x - 1
  430.                             2            ATAN(-------)
  431.                        LOG(x  - x + 1)        SQRT(3)    LOG(x + 1)
  432.      (D10)           - --------------- + ------------- + ----------
  433.                               6             SQRT(3)          3
  434.  
  435.    MAXIMA can solve linear systems and cubic equations:
  436.  
  437.      (C11) linsolve( [ 3*x + 4*y = 7, 2*x + a*y = 13], [x,y]);
  438.      
  439.                                     7 a - 52        25
  440.      (D11)                     [x = --------, y = -------]
  441.                                     3 a - 8       3 a - 8
  442.      (C12) solve( x^3 - 3*x^2 + 5*x = 15, x);
  443.      
  444.      (D12)              [x = - SQRT(5) %I, x = SQRT(5) %I, x = 3]
  445.  
  446.    MAXIMA can solve nonlinear sets of equations.  Note that if you don't
  447. want a result printed, you can finish your command with `$' instead of
  448. `;'.
  449.  
  450.      (C13) eq1: x^2 + 3*x*y + y^2 = 0$
  451.      
  452.      (C14) eq2: 3*x + y = 1$
  453.      
  454.      (C15) solve([eq1, eq2]);
  455.      
  456.                    3 SQRT(5) + 7      SQRT(5) + 3
  457.      (D15) [[y = - -------------, x = -----------],
  458.                          2                 2
  459.      
  460.                                          3 SQRT(5) - 7        SQRT(5) - 3
  461.                                     [y = -------------, x = - -----------]]
  462.                                                2                   2
  463.  
  464.    Under the X window system, MAXIMA can generate plots of one or more
  465. functions:
  466.  
  467.      (C13) plot2d(sin(x)/x,[x,-20,20]);
  468.      
  469.      
  470.      (YMIN -3.0 YMAX 3.0 0.29999999999999999)
  471.      (D13)                                  0
  472.      (C14) plot2d([atan(x), erf(x), tanh(x)], [x,-5,5]);
  473.      
  474.      
  475.      (YMIN -3.0 YMAX 3.0 0.29999999999999999)
  476.      (YMIN -3.0 YMAX 3.0 0.29999999999999999)
  477.      (YMIN -3.0 YMAX 3.0 0.29999999999999999)
  478.      (D14)                                  0
  479.      (C15) plot3d(sin(sqrt(x^2+y^2))/sqrt(x^2+y^2),[x,-12,12],[y,-12,12]);
  480.      
  481.      (D15)                                  0
  482.  
  483.    Moving the cursor to the top left corner of the plot window will pop
  484. up a menu that will, among other things, let you generate a PostScript
  485. file of the plot.  (By default, the file is placed in your home
  486. directory.)  You can rotate a 3D plot.
  487.  
  488. 
  489. File: maxima.info,  Node: Help,  Next: Command Line,  Prev: Introduction to MAXIMA,  Up: Top
  490.  
  491. Help
  492. ****
  493.  
  494. * Menu:
  495.  
  496. * Introduction to Help::
  497. * Lisp and Maxima::
  498. * Garbage Collection::
  499. * Documentation::
  500. * Definitions for Help::
  501.  
  502. 
  503. File: maxima.info,  Node: Introduction to Help,  Next: Lisp and Maxima,  Prev: Help,  Up: Help
  504.  
  505. Introduction to Help
  506. ====================
  507.  
  508.    The most useful online help command is DESCRIBE which obtains help
  509. on all commands containing a particular string.  Here by command we
  510. mean a built in operator such as INTEGRATE or FACTOR etc.   As a typing
  511. short cut you may type `? fact' in lieu of `describe("fact")'
  512.      (C3) ? inte;
  513.      
  514.      
  515.       0: (maxima.info)Integration.
  516.       1: Introduction to Integration.
  517.       2: Definitions for Integration.
  518.       3: INTERRUPTS.
  519.       4: ASKINTEGER :Definitions for Simplification.
  520.       5: DISPLAY_FORMAT_INTERNAL :Definitions for Input and Output.
  521.       6: INTEGERP :Definitions for Miscellaneous Options.
  522.       7: INTEGRATE :Definitions for Integration.
  523.       8: INTEGRATION_CONSTANT_COUNTER :Definitions for Integration.
  524.       9: INTERPOLATE :Definitions for Numerical.
  525.      Enter n, all, none, or multiple choices eg 1 3 : 7 8;
  526.      
  527.      Info from file /d/linux2/local/share/info/maxima.info:
  528.       - Function: INTEGRATE (EXP, VAR)
  529.           integrates exp with respect to var or returns an integral
  530.           expression (the noun form) if it cannot perform the integration
  531.           (see note 1 below).  Roughly speaking three stages are used:
  532.      ...
  533.    In the above the user said he wanted items 7 and 8.  Note the `;'
  534. following the two numbers.  He might have typed `all' to see help on
  535. all the items.
  536.  
  537. 
  538. File: maxima.info,  Node: Lisp and Maxima,  Next: Garbage Collection,  Prev: Introduction to Help,  Up: Help
  539.  
  540. Lisp and Maxima
  541. ===============
  542.  
  543.    All of Maxima is of course written in lisp.  There is a naming
  544. convention for functions and variables:  All symbols which begin with a
  545. "$" sign at lisp level, are read with the "$" sign stripped off at
  546. Macsyma level.  For example, there are two lisp functions TRANSLATE and
  547. $TRANSLATE.   If at macsyma level you enter TRANSLATE(FOO); the
  548. function which is called is the $translate function.  To access the
  549. other function you must prefix with a "?".   Note you may not put a
  550. space after the `?' since that would indicate you were looking for help!
  551.  
  552.      (C1) ?TRANSLATE(FOO);
  553.  
  554.    Of course, this may well not do what you wanted it to do since it is
  555. a completely different function.
  556.  
  557.    To enter a lisp command you may use
  558.      (C1) :lisp (foo 1 2)
  559.    or to get a lisp prompt use `to_lisp();', or alternately type
  560. `Ctrl-c' to enter into a debug break.  This will cause a lisp break
  561. loop to be entered.  You could now evaluate $d2 and view the value of
  562. the line label D2, in its internal lisp format.   Typing `:q' will quit
  563. to top level, if you are in a debug break.  If you had exited maxima
  564. with `to_lisp();' then you should type
  565.      MAXIMA>(run)
  566.    at the lisp prompt, to restart the Maxima session.
  567.  
  568.    If you intend to write lisp functions to be called at macsyma level
  569. you should name them by names beginning with a "$".   Note that all
  570. symbols typed at lisp level are automatically read in upper case,
  571. unless you do something like `|$odeSolve|' to force the case to be
  572. respected.   Maxima interprets symbols as mixed case, if the symbol has
  573. already been read before or at the time it was first read there was not
  574. an already existing symbol with the same letters but upper case only.
  575. Thus if you type
  576.      (C1) Integrate;
  577.      (D1) INTEGRATE
  578.      (C2) Integ;
  579.      (D2) Integ
  580.    The symbol `Integrate' already existed in upper case since it is a
  581. Maxima primitive, but INTEG, does not already exist, so the Integ is
  582. permitted.   This may seem a little bizarre, but we wish to keep old
  583. maxima code working, which assumes that Maxima primitives may be in
  584. upper or lower case.   An advantage of this system is that if you type
  585. in lower case, you will immediately see which are the maxima keywords
  586. and functions.
  587.  
  588.    To enter Maxima forms at lisp level, you may use the `#$' macro.
  589.                                (setq $foo #$[x,y]$)
  590.  
  591.    This will have the same effect as entering
  592.  
  593.      (C1)FOO:[X,Y];
  594.  
  595. except that foo will not appear in the VALUES list.  In order to view
  596. foo in macsyma printed format you may type
  597.  
  598.      (displa $foo)
  599.  
  600.    In this documentation when we wish to refer to a macsyma symbol we
  601. shall generally omit the $ just as you would when typing at macsyma
  602. level.  This will cause confusion when we also wish to refer to a lisp
  603. symbol.  In this case we shall usually try to use lower case for the
  604. lisp symbol and upper case for the macsyma symbol.  For example LIST
  605. for $list and list for the lisp symbol whose printname is "list".
  606.  
  607.    Since functions defined using the MAXIMA language are not ordinary
  608. lisp functions, you must use mfuncall to call them.  For example:
  609.  
  610.      (D2)                        FOO(X, Y) := X + Y + 3
  611.  
  612. then at lisp level
  613.  
  614.      CL-MAXIMA>>(mfuncall '$foo 4 5)
  615.      12
  616.  
  617.    A number of lisp functions are shadowed in the maxima package.  This
  618. is because their use within maxima is not compatible with the
  619. definition as a system function.  For example typep behaves differently
  620. common lisp than it did in Maclisp.  If you want to refer to the zeta
  621. lisp typep while in the maxima package you should use global:typep (or
  622. cl:typep for common lisp).  Thus
  623.  
  624.  
  625.        (macsyma:typep '(1 2)) ==> 'list
  626.        (lisp:typep '(1 2))==> error (lisp:type-of '(1 2))==> 'cons
  627.  
  628.    To see which symbols are shadowed look in "src/maxima-package.lisp"
  629. or do a describe of the package at lisp level.
  630.  
  631. 
  632. File: maxima.info,  Node: Garbage Collection,  Next: Documentation,  Prev: Lisp and Maxima,  Up: Help
  633.  
  634. Garbage Collection
  635. ==================
  636.  
  637.    Symbolic computation tends to create a good deal of garbage, and
  638. effective handling of this can be crucial to successful completion of
  639. some programs.
  640.  
  641.    Under GCL, on UNIX systems where the mprotect system call is
  642. available (including SUN OS 4.0 and some variants of BSD) a stratified
  643. garbage collection is available.   This limits the collection to pages
  644. which have been recently written to.    See the GCL documentation under
  645. ALLOCATE and GBC.   At the lisp level doing (setq si::*notify-gbc* t)
  646. will help you determine which areas might need more space.
  647.  
  648. 
  649. File: maxima.info,  Node: Documentation,  Next: Definitions for Help,  Prev: Garbage Collection,  Up: Help
  650.  
  651. Documentation
  652. =============
  653.  
  654.    The source for the documentation is in `.texi' texinfo format.  From
  655. this format we can produce the info files used by the online commands
  656. `? ' and `describe'.   Also `html' and `pdf' files can be produced.
  657.  
  658.    Additionally there are examples so that you may do
  659.      example(integrate);
  660.      (C4) example(integrate);
  661.      (C5) test(f):=BLOCK([u],u:INTEGRATE(f,x),RATSIMP(f-DIFF(u,x)));
  662.      (D5) test(f) := BLOCK([u], u :
  663.               INTEGRATE(f, x), RATSIMP(f - DIFF(u, x)));
  664.      (C6) test(SIN(x));
  665.      (D6)                                0
  666.      (C7) test(1/(x+1));
  667.      (D7)                                0
  668.      (C8) test(1/(x^2+1));
  669.      (D8)                                0
  670.      (C9) INTEGRATE(SIN(X)^3,X);
  671.  
  672. 
  673. File: maxima.info,  Node: Definitions for Help,  Prev: Documentation,  Up: Help
  674.  
  675. Definitions for Help
  676. ====================
  677.  
  678.  - Function: DEMO (file)
  679.      this is the same as BATCH but pauses after each command line and
  680.      continues when a space is typed (you may need to type `;' followed
  681.      by a newline, if running under xmaxima).   The demo files have
  682.      suffix `.dem'
  683.  
  684.  
  685.  - Function: DESCRIBE (cmd)
  686.      This command prints documentation on all commands which contain
  687.      the substring "cmd".   Thus
  688.           (C1) describe("integ");
  689.            0: (maxima.info)Integration.
  690.            1: Introduction to Integration.
  691.            2: Definitions for Integration.
  692.            3: ASKINTEGER :Definitions for Simplification.
  693.           ..
  694.           Enter n, all, none, or multiple choices eg 1 3 : 2 3;
  695.           Info from file /d/linux2/local/share/info/maxima.info:
  696.           Definitions for Integration
  697.           ===========================
  698.           
  699.            - Function: CHANGEVAR (EXP,F(X,Y),Y,X)
  700.           ...
  701.      *note Introduction to Help::
  702.  
  703.  
  704.  - Function: EXAMPLE (command)
  705.      will start up a demonstration of how command works on some
  706.      expressions.  After each command line it will pause and wait for a
  707.      space to be typed, as in the DEMO command.
  708.  
  709.      The name of the file containing the examples is given by the
  710.      variable manual_demo, which defaults to "maxima.demo".
  711.  
  712.  
  713. 
  714. File: maxima.info,  Node: Command Line,  Next: Operators,  Prev: Help,  Up: Top
  715.  
  716. Command Line
  717. ************
  718.  
  719. * Menu:
  720.  
  721. * Introduction to Command Line::
  722. * Definitions for Command Line::
  723.  
  724. 
  725. File: maxima.info,  Node: Introduction to Command Line,  Next: Definitions for Command Line,  Prev: Command Line,  Up: Command Line
  726.  
  727. Introduction to Command Line
  728. ============================
  729.  
  730.  - Function: %TH (i)
  731.      is the ith previous computation.  That is, if the next expression
  732.      to be computed is D(j) this is D(j-i).  This is useful in BATCH
  733.      files or for referring to a group of D expressions.  For example,
  734.      if SUM is initialized to 0 then FOR I:1 THRU 10 DO SUM:SUM+%TH(I)
  735.      will set SUM to the sum of the last ten D expressions.
  736.  
  737.  
  738.  - operator: "'"
  739.      - (single quote) has the effect of preventing evaluation.  E.g.
  740.      '(F(X)) means do not evaluate the expression F(X).  'F(X) means
  741.      return the noun form of F applied to [X].
  742.  
  743.  
  744.  - operator: """
  745.      - (two single quotes) causes an extra evaluation to occur.  E.g.
  746.      "c4; will re-execute line C4.  "(F(X)) means evaluate the
  747.      expression F(X) an extra time.  "F(X) means return the verb form
  748.      of F applied to [X].
  749.  
  750.  
  751. 
  752. File: maxima.info,  Node: Definitions for Command Line,  Prev: Introduction to Command Line,  Up: Command Line
  753.  
  754. Definitions for Command Line
  755. ============================
  756.  
  757.  - Function: ALIAS (newname1, oldname1, newname2, oldname2, ...)
  758.      provides an alternate name for a (user or system) function,
  759.      variable, array, etc.  Any even number of arguments may be used.
  760.  
  761.  
  762.  - Function: DEBUG ()
  763.      LISPDEBUGMODE(); DEBUGPRINTMODE(); and DEBUG(); make available to
  764.      the user debugging features used by systems programmers.  These
  765.      tools are powerful, and although some conventions are different
  766.      from the usual macsyma level it is felt their use is very
  767.      intuitive.  [Some printout may be verbose for slow terminals,
  768.      there are switches for controlling this.]  These commands were
  769.      designed for the user who must debug translated macsyma code, as
  770.      such they are a boon.  See MACDOC;TRDEBG USAGE for more
  771.      information.
  772.  
  773.  
  774.  - Variable: DEBUGMODE
  775.      default: [FALSE] - causes MACSYMA to enter a MACSYMA break loop
  776.      whenever a MACSYMA error occurs if it is TRUE and to terminate
  777.      that mode if it is FALSE.  If it is set to ALL then the user may
  778.      examine BACKTRACE for the list of functions currently entered.
  779.  
  780.  
  781.  - Function: DEBUGPRINTMODE ()
  782.      LISPDEBUGMODE(); DEBUGPRINTMODE(); and DEBUG(); make available to
  783.      the user debugging features used by systems programmers.  These
  784.      tools are powerful, and although some conventions are different
  785.      from the usual macsyma level it is felt their use is very
  786.      intuitive.  [Some printout may be verbose for slow terminals,
  787.      there are switches for controlling this.]  These commands were
  788.      designed for the user who must debug translated macsyma code, as
  789.      such they are a boon.  See MACDOC;TRDEBG USAGE for more
  790.      information.
  791.  
  792.  
  793.  - Function: EV (exp, arg1, ..., argn)
  794.      is one of MACSYMA's most powerful and versatile commands. It
  795.      evaluates the expression exp in the environment specified by the
  796.      argi.  This is done in steps, as follows:
  797.         *     (1) First the environment is set up by scanning the argi
  798.           which may be as follows: SIMP causes exp to be simplified
  799.           regardless of the setting of the switch SIMP which inhibits
  800.           simplification if FALSE.  NOEVAL supresses the evaluation
  801.           phase of EV (see step (4) below).  This is useful in
  802.           conjunction with the other switches and in causing exp to be
  803.           resimplified without being reevaluated.  EXPAND causes
  804.           expansion.  EXPAND(m,n) causes expansion, setting the values
  805.           of MAXPOSEX and MAXNEGEX to m and n respectively.  DETOUT
  806.           causes any matrix inverses computed in exp to have their
  807.           determinant kept outside of the inverse rather than dividing
  808.           through each element.  DIFF causes all differentiations
  809.           indicated in exp to be performed.  DERIVLIST(var1,...,vark)
  810.           causes only differentiations with respect to the indicated
  811.           variables.  FLOAT causes non-integral rational numbers to be
  812.           converted to floating point.  NUMER causes some mathematical
  813.           functions (including exponentiation) with numerical arguments
  814.           to be evaluated in floating point.  It causes variables in
  815.           exp which have been given numervals to be replaced by their
  816.           values.  It also sets the FLOAT switch on.  PRED causes
  817.           predicates (expressions which evaluate to TRUE or FALSE) to
  818.           be evaluated.  EVAL causes an extra post-evaluation of exp to
  819.           occur. (See step (5) below.)  E where E is an atom declared
  820.           to be an EVFLAG causes E to be bound to TRUE during the
  821.           evaluation of exp.  V:expression (or alternately
  822.           V=expression) causes V to be bound to the value of expression
  823.           during the evaluation of exp.  Note that if V is a MACSYMA
  824.           option, then expression is used for its value during the
  825.           evaluation of exp.  If more than one argument to EV is of
  826.           this type then the binding is done in parallel.  If V is a
  827.           non-atomic expression then a substitution rather than a
  828.           binding is performed.  E where E, a function name, has been
  829.           declared to be an EVFUN causes E to be applied to exp.  Any
  830.           other function names (e.g.  SUM) cause evaluation of
  831.           occurrences of those names in exp as though they were verbs.
  832.           In addition a function occurring in exp (say F(args)) may be
  833.           defined locally for the purpose of this evaluation of exp by
  834.           giving F(args):=body as an argument to EV.  If an atom not
  835.           mentioned above or a subscripted variable or subscripted
  836.           expression was given as an argument, it is evaluated and if
  837.           the result is an equation or assignment then the indicated
  838.           binding or substitution is performed.  If the result is a
  839.           list then the members of the list are treated as if they were
  840.           additional arguments given to EV. This permits a list of
  841.           equations to be given (e.g. [X=1, Y=A**2] ) or a list of
  842.           names of equations (e.g.  [E1,E2] where E1 and E2 are
  843.           equations) such as that returned by SOLVE.  The argi of EV
  844.           may be given in any order with the exception of substitution
  845.           equations which are handled in sequence, left to right, and
  846.           EVFUNS which are composed, e.g. EV(exp,RATSIMP,REALPART) is
  847.           handled as REALPART(RATSIMP(exp)).  The SIMP, NUMER, FLOAT,
  848.           and PRED switches may also be set locally in a block, or
  849.           globally at the "top level" in MACSYMA so that they will
  850.           remain in effect until being reset.  If exp is in CRE form
  851.           then EV will return a result in CRE form provided the NUMER
  852.           and FLOAT switches are not both TRUE.
  853.  
  854.         *     (2) During step (1), a list is made of the non-subscripted
  855.           variables appearing on the left side of equations in the argi
  856.           or in the value of some argi if the value is an equation.
  857.           The variables (both subscripted variables which do not have
  858.           associated array functions, and non-subscripted variables) in
  859.           the expression exp are replaced by their global values,
  860.           except for those appearing in this list.  Usually, exp is
  861.           just a label or % (as in (C2) below), so this step simply
  862.           retrieves the expression named by the label, so that EV may
  863.           work on it.
  864.  
  865.         *     (3) If any substitutions are indicated by the argi, they
  866.           are carried out now.
  867.  
  868.         *     (4) The resulting expression is then re-evaluated (unless
  869.           one of the argi was NOEVAL) and simplified according the the
  870.           argi.  Note that any function calls in exp will be carried
  871.           out after the variables in it are evaluated and that EV(F(X))
  872.           thus may behave like F(EV(X)).
  873.  
  874.         *     (5) If one of the argi was EVAL, steps (3) and (4) are
  875.           repeated.
  876.  
  877.                                Examples
  878.           
  879.           (C1) SIN(X)+COS(Y)+(W+1)**2+'DIFF(SIN(W),W);
  880.                                   d                 2
  881.           (D1)  COS(Y) + SIN(X) + -- SIN(W) + (W + 1)
  882.                                   dW
  883.           (C2) EV(%,SIN,EXPAND,DIFF,X=2,Y=1);
  884.                               2
  885.           (D2)      COS(W) + W  + 2 W + COS(1) + 1.90929742
  886.  
  887.      An alternate top level syntax has been provided for EV, whereby one
  888.      may just type in its arguments, without the EV().  That is, one may
  889.      write simply
  890.           exp, arg1, ...,argn.
  891.  
  892.      This is not permitted as part of another expression, i.e. in
  893.      functions, blocks, etc.
  894.  
  895.           (C4) X+Y,X:A+Y,Y:2;
  896.           (D4)                Y + A + 2
  897.           (Notice the parallel binding process)
  898.           (C5) 2*X-3*Y=3$
  899.           (C6) -3*X+2*Y=-4$
  900.           (C7) SOLVE([D5,D6]);
  901.           SOLUTION
  902.                                           1
  903.           (E7)                     Y =  - -
  904.                                           5
  905.                                     6
  906.           (E8)                  X = -
  907.                                     5
  908.           (D8)               [E7, E8]
  909.           (C9) D6,D8;
  910.           (D9)               - 4 =  - 4
  911.           (C10) X+1/X > GAMMA(1/2);
  912.                               1
  913.           (D10)           X + - > SQRT(%PI)
  914.                               X
  915.           (C11) %,NUMER,X=1/2;
  916.           (D11)            2.5 > 1.7724539
  917.           (C12) %,PRED;
  918.           (D12)                  TRUE
  919.  
  920.  
  921.  - Variable: EVFLAG
  922.      default: [] - the list of things known to the EV function.  An
  923.      item will be bound to TRUE during the execution of EV if it is
  924.      mentioned in the call to EV, e.g. EV(%,numer);.  Initial evflags
  925.      are
  926.  
  927.           FLOAT, PRED, SIMP, NUMER, DETOUT, EXPONENTIALIZE, DEMOIVRE,
  928.           KEEPFLOAT, LISTARITH, TRIGEXPAND, SIMPSUM, ALGEBRAIC,
  929.           RATALGDENOM, FACTORFLAG, %EMODE, LOGARC, LOGNUMER,
  930.           RADEXPAND, RATSIMPEXPONS, RATMX, RATFAC, INFEVAL, %ENUMER,
  931.           PROGRAMMODE, LOGNEGINT, LOGABS, LETRAT, HALFANGLES,
  932.           EXPTISOLATE, ISOLATE_WRT_TIMES, SUMEXPAND, CAUCHYSUM,
  933.           NUMER_PBRANCH, M1PBRANCH, DOTSCRULES, and LOGEXPAND.
  934.  
  935.  
  936.  - Variable: EVFUN
  937.      - the list of functions known to the EV function which will get
  938.      applied if their name is mentioned.  Initial evfuns are FACTOR,
  939.      TRIGEXPAND, TRIGREDUCE, BFLOAT, RATSIMP, RATEXPAND, RADCAN,
  940.      LOGCONTRACT, RECTFORM, and POLARFORM.
  941.  
  942.  
  943.  - special symbol: INFEVAL
  944.      leads to an "infinite evaluation" mode.  EV repeatedly evaluates
  945.      an expression until it stops changing.  To prevent a variable, say
  946.      X, from being evaluated away in this mode, simply include X='X as
  947.      an argument to EV.  Of course expressions such as
  948.      EV(X,X=X+1,INFEVAL); will generate an infinite loop.  CAVEAT
  949.      EVALUATOR.
  950.  
  951.  
  952.  - Function: KILL (arg1, arg2, ...)
  953.      eliminates its arguments from the MACSYMA system.  If argi is a
  954.      variable (including a single array element), function, or array,
  955.      the designated item with all of its properties is removed from
  956.      core.  If argi=LABELS then all input, intermediate, and output
  957.      lines to date (but not other named items) are eliminated. If
  958.      argi=CLABELS then only input lines will be eliminated; if
  959.      argi=ELABELS then only intermediate E-lines will be eliminated; if
  960.      argi=DLABELS only the output lines will be eliminated.  If argi is
  961.      the name of any of the other information lists (the elements of
  962.      the MACSYMA variable INFOLISTS), then every item in that class
  963.      (and its properties) is KILLed and if argi=ALL then every item on
  964.      every information list previously defined as well as LABELS is
  965.      KILLed.  If argi=a number (say n), then the last n lines (i.e. the
  966.      lines with the last n line numbers) are deleted.  If argi is of
  967.      the form [m,n] then all lines with numbers between m and n
  968.      inclusive are killed. Note that KILL(VALUES) or KILL(variable)
  969.      will not free the storage occupied unless the labels which are
  970.      pointing to the same expressions are also KILLed.  Thus if a large
  971.      expression was assigned to X on line C7 one should do KILL(D7) as
  972.      well as KILL(X) to release the storage occupied.
  973.      KILL(ALLBUT(name1,...,namek) will do a KILL(ALL) except it will not
  974.      KILL the names specified.  (Note: namei means a name such as U, V,
  975.      F, G, not an infolist such as FUNCTIONS.)      KILL removes all
  976.      properties from the given argument thus KILL(VALUES) will kill all
  977.      properties associated with every item on the VALUES list whereas
  978.      the REMOVE set of functions
  979.      (REMVALUE,REMFUNCTION,REMARRAY,REMRULE) remove a specific property.
  980.      Also the latter print out a list of names or FALSE if the specific
  981.      argument doesn't exist whereas KILL always has value "DONE" even if
  982.      the named item doesn't exist.      Note that killing expressions
  983.      will not help the problem which occurs on MC indicated by "NO CORE
  984.      - FASLOAD" which results when either too many FASL files have been
  985.      loaded in or when allocation level has gotten too high.  In either
  986.      of these cases, no amount of killing will cause the size of these
  987.      spaces to decrease.  Killing expressions only causes some spaces
  988.      to get emptied out but not made smaller.
  989.  
  990.  
  991.  - Function: LABELS (char)
  992.      takes a char C, D, or E as arg and generates a list of all
  993.      C-labels, D-labels, or E- labels, respectively.  If you've
  994.      generated many E- labels via SOLVE, then
  995.           FIRST(REST(LABELS(C)))
  996.      reminds you what the last C-label was.  LABELS will take as arg
  997.      any symbolic name, so if you have reset INCHAR, OUTCHAR, or
  998.      LINECHAR, it will return the list of labels whose first character
  999.      matches the first character of the arg you give to LABELS.  The
  1000.      variable, LABELS, default: [], is a list of C, D, and E lines
  1001.      which are bound.
  1002.  
  1003.  
  1004.  - Variable: LASTTIME
  1005.      - the time to compute the last expression in milliseconds
  1006.      presented as a list of "time" and "gctime".
  1007.  
  1008.  
  1009.  - Variable: LINENUM
  1010.      - the line number of the last expression.
  1011.  
  1012.  
  1013.  - Variable: MYOPTIONS
  1014.      default: [] - all options ever reset by the user (whether or not
  1015.      they get reset to their default value).
  1016.  
  1017.  
  1018.  - Variable: NOLABELS
  1019.      default: [FALSE] - if TRUE then no labels will be bound except for
  1020.      E lines generated by the solve functions.  This is most useful in
  1021.      the "BATCH" mode where it eliminates the need to do KILL(LABELS)
  1022.      in order to free up storage.
  1023.  
  1024.  
  1025.  - Variable: OPTIONSET
  1026.      default: [FALSE] - if TRUE, MACSYMA will print out a message
  1027.      whenever a MACSYMA option is reset.  This is useful if the user is
  1028.      doubtful of the spelling of some option and wants to make sure
  1029.      that the variable he assigned a value to was truly an option
  1030.      variable.
  1031.  
  1032.  
  1033.  - Function: PLAYBACK (arg)
  1034.      "plays back" input and output lines.  If arg=n (a number) the last
  1035.      n expressions (Ci, Di, and Ei count as 1 each) are "played-back",
  1036.      while if arg is omitted, all lines are.  If arg=INPUT then only
  1037.      input lines are played back. If arg=[m,n] then all lines with
  1038.      numbers from m to n inclusive are played-back.  If m=n then [m] is
  1039.      sufficient for arg.  Arg=SLOW places PLAYBACK in a slow-mode
  1040.      similar to DEMO's (as opposed to the "fast" BATCH).  This is
  1041.      useful in conjunction with SAVE or STRINGOUT when creating a
  1042.      secondary-storage file in order to pick out useful expressions.
  1043.      If arg=TIME then the computation times are displayed as well as
  1044.      the expressions.  If arg=GCTIME or TOTALTIME, then a complete
  1045.      breakdown of computation times are displayed, as with
  1046.      SHOWTIME:ALL;.  Arg=STRING strings-out (see STRING function) all
  1047.      input lines when playing back rather than displaying them.  If
  1048.      ARG=GRIND "grind" mode can also be turned on (for processing input
  1049.      lines) (see GRIND).  One may include any number of options as in
  1050.      PLAYBACK([5,10],20,TIME,SLOW).
  1051.  
  1052.  
  1053.  - Function: PRINTPROPS (a, i)
  1054.      will display the property with the indicator i associated with the
  1055.      atom a. a may also be a list of atoms or the atom ALL in which
  1056.      case all of the atoms with the given property will be used.  For
  1057.      example, PRINTPROPS([F,G],ATVALUE).  PRINTPROPS is for properties
  1058.      that cannot otherwise be displayed, i.e. for ATVALUE, ATOMGRAD,
  1059.      GRADEF, and MATCHDECLARE.
  1060.  
  1061.  
  1062.  - Variable: PROMPT
  1063.      default: [_] is the prompt symbol of the DEMO function,
  1064.      PLAYBACK(SLOW) mode, and (MACSYMA-BREAK).
  1065.  
  1066.  
  1067.  - Function: QUIT ()
  1068.      kills the current MACSYMA but doesn't affect the user's other
  1069.      jobs;  equivalent to exiting to DCL and stopping the MACSYMA
  1070.      process.  One may "quit" to MACSYMA top-level by typing Control-C
  1071.      Control-G; Control-C gets NIL's interrupt prompt, at which one
  1072.      types either Control-G or just G.  Typing X at the Interrupt
  1073.      prompt will cause a quit in a computation started within a
  1074.      MACSYMA-BREAK without disrupting the suspended main computation.
  1075.  
  1076.  
  1077.  - Function: REMFUNCTION (f1, f2, ...)
  1078.      removes the user defined functions f1,f2,... from MACSYMA.  If
  1079.      there is only one argument of ALL then all functions are removed.
  1080.  
  1081.  
  1082.  - Function: RESET ()
  1083.      causes all MACSYMA options to be set to their default values.
  1084.      (Please note that this does not include features of terminals such
  1085.      as LINEL which can only be changed by assignment as they are not
  1086.      considered to be computational features of MACSYMA.)
  1087.  
  1088.  
  1089.  - Function: RESTORE (file-specification)
  1090.      reinitializes all quantities filed away by a use of the SAVE or
  1091.      STORE functions, in a prior MACSYMA session, from the file given
  1092.      by file-specification without bringing them into core.
  1093.  
  1094.  
  1095.  - Variable: SHOWTIME
  1096.      default: [FALSE] - if TRUE then the computation time will be
  1097.      printed automatically with each output expression.  By setting
  1098.      SHOWTIME:ALL, in addition to the cpu time MACSYMA now also prints
  1099.      out (when not zero) the amount of time spent in garbage collection
  1100.      (gc) in the course of a computation.  This time is of course
  1101.      included in the time printed out as "time=" .  (It should be noted
  1102.      that since the "time=" time only includes computation time and not
  1103.      any intermediate display time or time it takes to load in
  1104.      out-of-core files, and since it is difficult to ascribe
  1105.      "responsibility" for gc's, the gctime printed will include all
  1106.      gctime incurred in the course of the computation and hence may in
  1107.      rare cases even be larger than "time=").
  1108.  
  1109.  
  1110.  - Function: SSTATUS (feature,package)
  1111.      - meaning SET STATUS.  It can be used to SSTATUS( FEATURE,
  1112.      HACK_PACKAGE) so that STATUS( FEATURE, HACK_PACKAGE) will then
  1113.      return TRUE.  This can be useful for package writers, to keep
  1114.      track of what FEATURES they have loaded in.
  1115.  
  1116.  
  1117.  - Function: TOBREAK ()
  1118.      causes the MACSYMA break which was left by typing TOPLEVEL; to be
  1119.      re-entered.  If TOBREAK is given any argument whatsoever, then the
  1120.      break will be exited, which is equivalent to typing TOBREAK()
  1121.      immediately followed by EXIT;.
  1122.  
  1123.  
  1124.  - Function: TOPLEVEL ()
  1125.      During a break one may type TOPLEVEL;.  This will cause top-level
  1126.      MACSYMA to be entered recursively.  Labels will now be bound as
  1127.      usual.  Everything will be identical to the previous top-level
  1128.      state except that the computation which was interrupted is saved.
  1129.      The function TOBREAK() will cause the break which was left by
  1130.      typing TOPLEVEL; to be re-entered.  If TOBREAK is given any
  1131.      argument whatsoever, then the break will be exited, which is
  1132.      equivalent to typing TOBREAK() immediately followed by EXIT;.
  1133.  
  1134.  
  1135.  - Function: TO_LISP ()
  1136.      enters the LISP system under MACSYMA.  This is useful on those
  1137.      systems where control-uparrow is not available for this function.
  1138.  
  1139.  
  1140.  - Variable: TTYINTFUN
  1141.      default: [FALSE] - Governs the function which will be run whenever
  1142.      the User-interrupt-character is typed.  To use this feature, one
  1143.      sets TTYINTFUN (default FALSE meaning feature not in use) to a
  1144.      function of no arguments.  Then whenever (e.g.) ^U (control-U) is
  1145.      typed, this function is run.  E.g. suppose you have a FOR statement
  1146.      loop which increments I, and you want an easy way of checking on
  1147.      the value of I while the FOR statement is running.  You can do:
  1148.      TTYINTFUN:PRINTI$ PRINTI():=PRINT(I)$ , then whenever you type
  1149.      (e.g.)  ^U you get the check you want.
  1150.  
  1151.  
  1152.  - Variable: TTYINTNUM
  1153.      default: [21] (the ascii value of Control-U (^U), U being the 21st
  1154.      letter of the alphabet).  This controls what character becomes the
  1155.      User-interrupt-character.  ^U was chosen for it mnemonic value.
  1156.      Most users should not reset TTYINTNUM unless they are already
  1157.      using ^U for something else.
  1158.  
  1159.  
  1160.  - Variable: VALUES
  1161.      default:[] - all bound atoms, i.e. user variables, not MACSYMA
  1162.      Options or Switches, (set up by : , :: , or functional binding).
  1163.  
  1164.  
  1165. 
  1166. File: maxima.info,  Node: Operators,  Next: Expressions,  Prev: Command Line,  Up: Top
  1167.  
  1168. Operators
  1169. *********
  1170.  
  1171. * Menu:
  1172.  
  1173. * NARY::
  1174. * NOFIX::
  1175. * OPERATOR::
  1176. * POSTFIX::
  1177. * PREFIX::
  1178. * Definitions for Operators::
  1179.  
  1180. 
  1181. File: maxima.info,  Node: NARY,  Next: NOFIX,  Prev: Operators,  Up: Operators
  1182.  
  1183. NARY
  1184. ====
  1185.  
  1186.    - An NARY operator is used to denote a function of any number of
  1187. arguments, each of which is separated by an occurrence of the operator,
  1188. e.g. A+B or A+B+C.  The NARY("x") function is a syntax extension
  1189. function to declare x to be an NARY operator.  Do DESCRIBE(SYNTAX); for
  1190. more details.  Functions may be DECLAREd to be NARY.  If
  1191. DECLARE(J,NARY); is done, this tells the simplifier to simplify, e.g.
  1192. J(J(A,B),J(C,D)) to J(A, B, C, D).
  1193.  
  1194. 
  1195. File: maxima.info,  Node: NOFIX,  Next: OPERATOR,  Prev: NARY,  Up: Operators
  1196.  
  1197. NOFIX
  1198. =====
  1199.  
  1200.    - NOFIX operators are used to denote functions of no arguments.  The
  1201. mere presence of such an operator in a command will cause the
  1202. corresponding function to be evaluated.  For example, when one types
  1203. "exit;" to exit from a MACSYMA break, "exit" is behaving similar to a
  1204. NOFIX operator.  The function NOFIX("x") is a syntax extension function
  1205. which declares x to be a NOFIX operator.  Do DESCRIBE(SYNTAX); for more
  1206. details.
  1207.  
  1208. 
  1209. File: maxima.info,  Node: OPERATOR,  Next: POSTFIX,  Prev: NOFIX,  Up: Operators
  1210.  
  1211. OPERATOR
  1212. ========
  1213.  
  1214.    - See OPERATORS
  1215.  
  1216. 
  1217. File: maxima.info,  Node: POSTFIX,  Next: PREFIX,  Prev: OPERATOR,  Up: Operators
  1218.  
  1219. POSTFIX
  1220. =======
  1221.  
  1222.    - POSTFIX operators like the PREFIX variety denote functions of a
  1223. single argument, but in this case the argument immediately precedes an
  1224. occurrence of the operator in the input string, e.g. 3! .  The
  1225. POSTFIX("x") function is a syntax extension function to declare x to be
  1226. a POSTFIX operator.  Do DESCRIBE(SYNTAX); for details.
  1227.  
  1228. 
  1229. File: maxima.info,  Node: PREFIX,  Next: Definitions for Operators,  Prev: POSTFIX,  Up: Operators
  1230.  
  1231. PREFIX
  1232. ======
  1233.  
  1234.    - A PREFIX operator is one which signifies a function of one
  1235. argument, which argument immediately follows an occurrence of the
  1236. operator.  PREFIX("x") is a syntax extension function to declare x to
  1237. be a PREFIX operator.  Do DESCRIBE(SYNTAX); for more details.
  1238.  
  1239.